# -*-coding:utf-8 -*-
# @Time: 2023/3/15 18:25
# @Author: cuishuohao
# @File: demo2
# @Software: PyCharm


def mse(w, b, dataset):
    # 根据模型当前的参数w和b计算模型在数据集dataset上的损失函数
    # w:权重
    # b:偏置值21.
    # dataset:数据集
    # 返回mse
    loss_sum = 0.0  # 初始化loss
    for i in range(len(dataset)):
        x = dataset[i, 0]  # 取得第i个样本的特征(x值)
        y = dataset[i, 1]  # 取得第i个样本的标签(y值)
        f = w * x + b  # 线性回归模型
        loss_sum = loss_sum + (y - f) ** 2  # 所有样本的误差平方和
    mse = loss_sum / len(dataset)  # 对所有样本的误差平方和求平均得到均方误差
    return mse
